Methods and systems for dynamic matching and communication between service providers and service requesters

ABSTRACT

Methods, processes, and devices for dynamic service matching include collecting provider data from a plurality of providers, receiving a service request by a user, processing the service request based on the collected provider data, sending, via a network, the processed service request to at least one of the plurality of providers, receiving at least one service bid from the at least one of the plurality of providers wherein the at the least one service bid includes service data, filtering the at least one service bid based on the service data, sending, via a network, the at least one filtered service bid to the user, receiving a selection input from the user, and establishing a direct communication channel between the user and the provider based on the received selection input.

TECHNICAL FIELD OF ENDEAVOR

The invention relates to the field of dynamic matching and establishingcommunication channels, more particularly, dynamically matching serviceproviders to service requesters via request and data filteringprocessing by using their computing devices in order to facilitate moreefficient matching of services and communication between users.

BACKGROUND

The service industry in some areas accounts for over eighty percent ofall employment. Traditionally, potential service customers could findlocal providers through directory listings such as phone books. Today,however, upwards of seventy percent of people do not open their phonebooks if they even still receive one. Searching for service providerstoday can be accomplished on the internet, which may include spendingtime searching, calling multiple providers to receive quotes, andresearching business reputations in order to make a purchasing decision.

SUMMARY

Embodiments for methods, systems, and devices for dynamic servicematching and communication may include: collecting provider data from aplurality of provider devices, receiving a service request from a userdevice, processing the service request based on the collected providerdata, sending, via a network, the processed service request to at leastone of the plurality of providers, receiving at least one service bidfrom the at least one of the plurality of providers where the at theleast one service bid includes service data, filtering the at least oneservice bid based on the service data, sending, via a network, the atleast one filtered service bid to the user, receiving a selection inputfrom the user, and establishing a direct communication channel betweenthe user and the provider based on the received selection input. Otherobjects, advantages and novel features, and further scope ofapplicability of the present invention will be set forth in part in thedetailed description to follow, and in part will become apparent tothose skilled in the art upon examination of the following, or may belearned by practice of the invention. The objects and advantages of theinvention may be realized and attained by means of the instrumentalitiesand combinations particularly pointed out in the appended claims.

BRIEF DESCRIPTION OF DRAWINGS

The various embodiments of the present dynamic matching andcommunication of service providers and service requests now will bediscussed in detail with an emphasis on highlighting the advantageousfeatures. These embodiments depict the novel and non-obvious dynamicmatching and communication of service providers and service requestersshown in the accompanying drawings, which are for illustrative purposesonly. These drawings include the following figures, in which likenumerals indicate like parts:

FIG. 1 depicts a network diagram of a dynamic matching and communicationsystem for service providers and users in accordance with an embodimentof the invention;

FIG. 2A is a functional block diagram illustrating a process forrequesting a service in accordance with an embodiment of the invention;

FIG. 2B is a functional block diagram illustrating a process forreceiving service bids in accordance with an embodiment of theinvention;

FIG. 2C is a functional block diagram illustrating a process foraccepting service bids in accordance with an embodiment of theinvention;

FIG. 2D is a functional block diagram illustrating a process forverifying accepted bids in accordance with an embodiment of theinvention;

FIG. 2E is a functional block diagram illustrating a process forestablishing direct communication in accordance with an embodiment ofthe invention;

FIG. 3 illustrates signal timings for a dynamic matching andcommunication system for service providers and users in accordance withan embodiment of the invention;

FIG. 4 illustrates a top level functional block diagram of a dynamicmatching device;

FIG. 5 is a flowchart depicting a process for dynamic matching andcommunication of service providers and users in accordance with anembodiment of the invention; and

FIG. 6 depicts a computing system comprising a centralized serverdevice, a service provider, a service requester, and a data exchangeserver.

FIG. 7 is a flowchart depicting a process for dynamic matching andcommunication of service providers and service requesters in accordancewith an embodiment of the invention;

FIG. 8 depicts, in a functional block diagram, a communication sequenceof message between a server device and multiple client devices;

FIG. 9 shows a high-level block diagram and process of a computingsystem for implementing an embodiment of the system and process;

FIG. 10 shows a block diagram and process of an example of a system inwhich an embodiment may be implemented; and

FIG. 11 depicts a cloud computing environment for implementing anembodiment of the system and process disclosed herein.

DETAILED DESCRIPTION

In the present application, the current embodiments describe methods andsystems for matching service providers with service requesters andestablishing direct communication channels between the parties. Inaccordance with various embodiments of the invention, the systems andmethods described improve the efficiency of finding proper serviceproviders who can sufficiently address the user's service needs in amore efficient manner than current methods.

Current methods of locating service providers can be time-intensive andnon-comprehensive. Internet search options are often filtered and maylack many of the filters necessary for certain, specific service needs.This can lead to potential service users having to select a serviceprovider from a limited or unqualified selection. Furthermore, somecurrent service provider search options fail to account for a serviceprovider's location or availability, leading to time spent researchingservice providers who cannot be a match for the user.

The dynamic matching and communication of service providers and users inaccordance with aspects of the present embodiments improves both apotential user's search for a provider, and a provider's search for newcustomers. Searches can be done through one centralized system thatallows specialized options and filters to best match up serviceproviders and users in order to establish direct communication betweenboth parties. The centralized system may also regulate transactionsand/or provide added security features to both parties.

Dynamic matching in accordance with many embodiments of the system maybe accomplished and enhanced through the use of a centralized server. Inmany embodiments, the centralized server comprises data regardingnumerous service providers. This data may be stored in a centralizedprovider database or in certain embodiments stored and accessed remotelythrough a cloud-based service. The provider database may be accessedthrough a network such as the Internet allowing for both serviceproviders and service users to connect. In many embodiments, thecentralized server along with user interfaces on a mobile device mayprovide a distinct graphical user interface for both service providersand service users. In a number of embodiments, service providersactively enter service data into the provider database. In certainembodiments, service provider data is created by searching and/orscraping external web sites or databases.

Service providers and users may access the centralized server innumerous ways. In many embodiments, both service providers and usersutilize a software application executing on a portable computing devicehaving a processor and addressable memory. The computing device maytransmit data, and associated information to the centralized server via,for example, wireless WiFi®, wireless local area network (WLAN), orother wireless networks with broadcast methods such as Long TermEvolution (LTE), Bluetooth, and/or any other hardware or software radiobroadcast methods. The centralized server may connect and work with anysuch devices that may use LTE or WLAN, for example, mobile phones,specifically smartphones, personal computers, video game consoles,tablets, televisions, and/or digital cameras, to connect to a networkresource such as the Internet via wired or wireless communication.

Communication between the user, service provider, and centralized servermay be accomplished in a number of ways. In one embodiment, the datacommunication between the centralized server, and the mobile computingdevices may be via, for example, a User Datagram Protocol (UDP) which isa transport layer protocol defined for use with the IP network layerprotocol. In many embodiments, a push data mechanism may be implementedvia TCP/IP protocols and the line tracking time updates may be sent inreal-time. Each mobile device may comprise an embedded web applicationserver that may allow executable applications or scripts, that may beavailable in versions for different platforms and are to be executed onthe mobile device. Applications may be developed to support variousmobile devices and their respective operating systems such as: iOS,Android, and Windows.

In a number of embodiments, a user will send a request for a service tothe centralized server when a service is desired. In a further number ofembodiments, the user will be prompted to enter service request datathat may include (but is not limited to) service type, price range,location, service time, and/or provider rating desired. By way ofexample, a user could enter information that indicates they are lookingfor a service provider who can fix a broken refrigerator and then beprompted for a location, desired time of service, and/or what problemsthe refrigerator is experiencing. In further embodiments, this receiveduser data is converted into a service request object and sent to thecentralized server for processing.

In a variety of embodiments, the centralized server receives the servicerequest object and utilizes the provider database for processing of thedata. In certain embodiments, the service request data is parsed andprocessed to best match potential providers to the desired servicerequested at real-time or near real-time. The matching may be based oncertain factors including, but not limited to, provider type, providerlocation, provider business hours, provider rating, and/or past averageprices of similar service requests. Based on the processed data,multiple providers may be contacted who may potentially provide theservice and where the requests may be sent in parallel. In a number ofembodiments, the providers are sent a service request in the form of aservice proposal or bid request.

Providers receive service bid requests for service from the centralizedserver. In many embodiments, these requests may come in the form of apush notification on a mobile computing device indicating a need for theprovider's attention. In certain embodiments, providers may evaluate theservice bid request and respond with a variety of data including, butnot limited to, availability to provide the service, potential time ofservice, a cost estimate of the service, and/or current location.Providers are under no obligation to respond to these service bidrequests. In some embodiments, providers may be incentivized to provideservice bid requests by offering incentives including, but not limitedto, an increased provider rating, priority ranking of service bids,and/or preferential placement in service bid listings. The service bidrequest may be sent back to the centralized server.

The centralized server may receive and process the one or more receivedbids. In a number of embodiments, the centralized server may add thedata contained in the service bid request into the provider database forfuture provider metric and matching processing. In certain embodiments,the centralized server may process a plurality of service bid requestsbased on the data entered by the service providers in the bid request.In further embodiments, the processing may include ranking the servicebids by a number of factors including, but not limited to, bid requestpriorities, location, last time of check-in, and service bid price.Filtered service bids may then be sent to the user.

The user may choose a service provider based on the received filteredservice bids. In a number of embodiments, the received filtered bids arepresented to the user in a service bid listing that provides informationabout each of the service bids placed by the service providers. Infurther embodiments, the service bid listing may include informationincluding, but not limited to, service bid price, location of theservice provider, historical service provider ranking, service providerreviews, and/or number of previous service bids accepted. In certainembodiments, the user may be presented with two options to choose from.The user may enter a choice for an accepted service bid in the servicebid listing. In still further embodiments, the user may list a rankingof preferred service bids. In certain embodiments, the service bidlisting may be updated in real-time or near real-time to reflect updatesin any aspect of the bidding process including, but not limited to,service provider availability, pricing based on demand, and/or estimatedarrival times.

User bid selections are sent to the centralized server. In manyembodiments, the centralized server may verify the accepted service bidthrough a number of methods including, but not limited to, verifying theprovider is still checked into the mobile computing device application,verifying the location of the service provider in relation to the userrequesting the service, and/or verifying that direct communicationbetween the user and service provider can be established. In certainembodiments, the verification may be done through the use of GlobalPositioning System (GPS) signals verifying that either the serviceprovider or the user is still within a pre-defined geographicalboundary. In additional embodiments, verification may be done throughthe use of keep-alive signals being sent to the mobile computing deviceand/or application. The centralized server may establish a directcommunication channel between the user and the service provider in theaccepted service bid. In a number of embodiments, direct communicationmay be accomplished by providing a phone number and a generated uniqueID to the user and/or prompting the mobile computing device to call theservice provider in the accepted service bid without further input bythe user. In further embodiments, the centralized server facilitates thedirect communication by establishing a voice channel between the userand the centralized server and the service provider in the acceptedservice bid and the centralized server, and overlaying the communicationchannels of the user and the service provider to establish directcommunication between the user and service provider. In one embodiment,this may be established via a Voice over IP channel.

In certain embodiments, the user and service provider may contact thecentralized server after the service has been provided to enterpost-service data relating to the service provided. This information mayinclude, but is not limited to, user satisfaction with the serviceprovided and the service provider, final cost of the service, providerfeedback on the user, user feedback on the service provided, and/or timeelapsed from direct communication established until the service wasprovided and completed. In further embodiments, this post-service datacan be utilized in future requests from the same or other users andproviders.

At all points of the dynamic matching process, the system may implementa time-out or check-in system. In a number of embodiments, serviceproviders and users may be required to have a dynamic matchingapplication open and running to complete the dynamic matching process.In certain embodiments, service providers may not have to be running thedynamic matching application until a push notification signifies a newservice bid request has come in which may then require the serviceprovider to be logged into the dynamic matching application. In certainembodiments, a keep-alive signal may be sent to the service providerthat may be responded to in order to avoid being removed from thedynamic matching process. In other embodiments, the client may sendkeep-alive messages without being prompted. In additional embodiments,if either the user or service provider fail to respond to the next stepof the dynamic matching process within a pre-determined amount of time,the dynamic matching process may end and have to be restarted from anearlier step. In further embodiments, service providers may add datathat indicates the duration their service bids will be acceptable whichcan adjust the amount of time needed for a user response before atime-out occurs. Similarly, a service requester may specify a durationof time in what they expect or require the bid/service to be received orperformed, thereby adjusting the amount of time needed for a serviceprovider to respond before a time-out occurs.

A dynamic matching and communication system 100 for service providersand users in accordance with an embodiment of the invention isillustrated in FIG. 1. The dynamic matching and communication system 100comprises a centralized server 102 that is connected to a network 106.In some embodiments, there may be more than one centralized server 102,which may be connected to a cloud-based server 104 that is itselfconnected to the network 106. In certain embodiments, the cloud-basedservers 104 may be administered by a third party. In many embodiments,the dynamic matching and communication system 100 comprises serviceprovider mobile computing devices 110 connected to the network 106.Additionally, certain embodiments may have provider devices 110connected to a wireless network access point 112, which is itselfconnected to the network 106. Additionally, service users can access thecentralized servers 102 through a variety of methods. In a number ofembodiments, the user may connect to the network 106 through mobilecomputing devices 120 or desktop computers 126. These mobile computingdevices 120 and desktop computers 126 may be connected directly to thenetwork 106 or through a wireless network access point 122, which isitself connected to the network 106.

While a variety of dynamic matching systems for service providers andusers are described above with reference to FIG. 1, the specificcomponents utilized within a dynamic matching system and the manner inwhich the connections between the centralized server, the user'sdevices, and the service provider's devices are largely dependent uponthe requirements of specific applications. For example, in certainembodiments, users may connect to the network with a variety of devicesincluding cell phones, laptop computers, tablets, desktop computers,smart-home interfaces, or through appliances that are in need ofservicing including (but not limited to) televisions, and refrigerators.Those skilled in the art will appreciate the numerous methods ofcommunicating over networks including the Internet, which can beaccessed through cellular networks, local area networks, or satelliteservices. Processes for dynamically matching service users to serviceproviders are discussed below.

At a high level, processes for dynamically matching service users andservice providers involve users sending a request for service to acentralized server that comprises provider information, requestingservice bids from providers that may provide the requested service, theuser selecting one of the service bids, and establishing a directcommunication channel between the users and service providers. The timewindow for this process may vary depending on the type of servicerequested. Additionally, in some embodiments, the involvement of thecentralized server may vary depending on the type of service requestedor the data that needs to be collected. A series of stages illustratinga system for dynamically matching users and service providers inaccordance with an embodiment of the invention is shown in FIGS. 2A-2E.

FIG. 2A depicts the stage of requesting a service in accordance with anembodiment of the invention. The dynamic matching and communicationsystem 200 may comprise a client device 205 connected to a centralizedserver 210. The client device 205 may transmit a request for a serviceto the centralized server 210. In many embodiments, the service requestcomprises data that may classify the type of service requested. In anumber of embodiments, the centralized server 210 comprises data relatedto potential providers that was acquired prior to the service requestbeing transmitted. In further embodiments, the centralized server maysearch and request provider data in response to a service request beingmade. In still further embodiments, the service request may containprovider data scrapped from a local network connection provided by theclient device 205. In numerous embodiments, the centralized server 210processes the service request data sent by the client device 205 inorder to determine potential service providers to request service bidsfrom. That is, the centralized server 210 will send notifications out tonumerous service providers 215, 216, 217. In certain embodiments, datareceived by service provider A 215 will be different from data receivedby service provider B 216 or service provider N 217 due to factorsincluding, but not limited to, service provider check-in status, serviceprovider location, and/or historical service provider response times.Once service bid requests have been received by service providers 215,216, 217, service bids may be made and returned, as explained furtherherein.

FIG. 2B depicts the stage of responding to service bid requests withservice bids in accordance with an embodiment of the invention. Thedynamic matching and communication system 201 comprises a series ofservice providers A 215, B 216, and N 217 connected to a centralizedserver 210. In response to a request for a service bid, each serviceprovider 215, 216, 217 responds with a service bid transmitted to thecentralized server 210. In many embodiments, the service bid includesinformation including, but not limited to, service price estimate,service time to completion estimate, notes from the service providerregarding the specific user service request, and/or alternatives to therequested service. In certain embodiments, a service provider canrespond by declining a service bid request with data that can indicatethe reason for denial. Once service bids (or service bid requestdenials) are received by the centralized server 210, service bid data issent to the client device 205. In a number of embodiments, thecentralized server 210 processes the received service bids including,but not limited to, ranking the service bids based on criteria from thecentralized server 210 and/or the client device 205, eliminating servicebids that do not conform with pre-determined filters, supplementing bidrequests with other provider data. The supplemented provider data caninclude, but is not limited to, historical provider ratings, providerreviews, historical provider service completion times, and/or priceranges from historical service requests from of a similar nature. Incertain embodiments, the centralized server 210 may limit thetransmission of service bid data to the client device 205 to a smallernumber of service providers than all the available service providers,for example, only two service providers. Transmitted service bids arepresented to the user on the client device 205, which is discussedbelow.

FIG. 2C depicts the stage of accepting service bids in accordance withan embodiment of the invention. The dynamic matching and communicationsystem 202 comprises a client device 205 that has received service biddata from a centralized server 210. In some embodiments, the service biddata is presented to the user on the client device 205 as a list ofproviders. In further embodiments, the presented service bids compriseinformation including, but not limited to, provider names, providerquoted prices, provider estimated time frames for service completion,provider notes for the specific service request, and/or providerratings. The client device 205 can be equipped to receive input from theuser indicating an acceptance of a service bid. In a number ofembodiments, the accepted bid data is transmitted to the centralizedserver 210. By way of example, the accepted bid may have corresponded tothe service bid submitted by service provider A 215. In certainembodiments, the centralized server 210 can transmit a bid acceptancemessage to the service provider. In other embodiments, the centralizedserver 210 may transmit a final service offer acceptance message to theservice provider in order to verify the service provider can perform theservice. In still further embodiments, the centralized server maytransmit bid denials to service providers who did not have their bidaccepted. In still yet further embodiments, the centralized server maynot send out any data to service providers in response to receiving anaccepted bid. In a number of embodiments, the accepted bid must beverified before direct communication can be established between theservice user and provider. Verification of an accepted bid is discussedbelow.

FIG. 2D depicts the stage of verifying accepted bids in accordance withan embodiment of the invention. The dynamic matching and communicationsystem 203 comprises a centralized server 210 that receives data fromservice provider A 215. By way of example, service provider A 215 had aservice bid request accepted by the user and may want to transmit databack to the centralized server 210 to verify acceptance of the bid. Inmany embodiments, the data that service providers send to thecentralized server 210 in this stage may include, but is not limited to,location data, check-in data and/or service bid acceptance data. In anumber of embodiments, the centralized server 210 may process the dataprovided by a service provider before establishing direct communicationbetween the user and service provider. In certain embodiments,verification can be done in numerous ways including, but not limited to,comparing location information of the user and service provider,comparing the price requested by the user and the estimated serviceprice provided by the service provider and/or comparing data in theprovider database to data currently being provided by the serviceprovider. In further embodiments, service providers who did not have anaccepted bid can still provide data to the centralized server 210. Byway of example, service provider N 217 can provide data to thecentralized server 210 indicating that their service bid is still validand can still be accepted if service provider A 215 is not verified toaccept the bid, and service provider B 216 can provide verification datato the centralized server 210 that the declined bid could be amended toa different price. In still further embodiments, establishing directcommunication between the user and service provider can be achievedafter the verification process is completed. Establishing directcommunication is discussed below.

FIG. 2E depicts the stage of establishing direct communication betweenthe user and the service provider. In some embodiments, the dynamicmatching and communication system 204 may connect the client device 205with the service provider 215 without the need for a centralized server.In other embodiments, this connection may be achieved by way of acentralized server 210. In further embodiments, the method of directcommunication achieved may be through a voice call. As one skilled inthe art would appreciate, voice calls can be accomplished through anumber of means including cellular networks, twisted pair telephonelines, voice over IP (VOIP), or other comparable means of achievingdirect voice conversations. In still further embodiments, the directcommunication could be through a digital text or email service. In otherembodiments, the centralized server 210 may establish a connectiondirectly between the client device 205 and service provider 215, wherein yet other embodiments, the central server may overlay thecommunication channels between the client device 205 and the serviceprovider 215 while handing off the data back and forth between them220,225. In this embodiment, the centralized server may establish thedirect communication channel via a unique ID generated and passed to theclient device 205 and service provider 215. Once direct communication isestablished, the user and service provider can complete the requestedservice. In some embodiments, the centralized server 210 may use GPSlocation related data received from the client device 205 and a serviceprovider 215 device to effect initiation of the communication channel.

While a variety of dynamic matching and communication systems forservice providers and users are described above with reference to FIGS.2A-E, the specific components utilized within a dynamic matching andcommunication system and the stages in which the direct communication isestablished are largely dependent upon the requirements of specificapplications. For example, in certain embodiments, multiple users maybid on the same service that only a limited number of providers cansupply or service providers may amend their bids in response tocompeting service bids from other service providers. The timing ofsignals between the user device, the centralized server, and the serviceprovider is discussed below.

In one embodiment, a service requester may provide by uploading ortransmitting digital media, e.g., images and/or videos, associated withtheir request. Based on the received digital media, the central server320 may determine a series of identifiers or categories by processingsaid received digital media using, for example, image recognitionservices. That is, an image recognition service or other artificialintelligence—via an application program interface (API)—may be used toretrieve probable keywords for the subject matter in the digital mediato associate a set of identifiers or categories to the request. Further,in some embodiments, user generated or provided text or image taggingmay be used to verify the accuracy of set of identifiers or categoriesfrom the image recognition service.

In some embodiments, the central server may as part of the filtering ofthe bids, validate the received bids from the service providers, beforesending them to the service requester by using the determined set ofidentifiers or categories and previously recorded bids in similargeographic areas. Hence, the filtered bids may be provided to theservice requester with a high degree of confidence that the serviceprovider is not charging higher than usual prices for such similarservices. In some such embodiments, the service requester may provide arange for their budget so that the central server may further filter thebids before they are provided to the service requester.

As disclosed, in the embodiments where methods, such as, keep-alivesignals, may be implemented to ensure service providers are stillactive, the central server may further determine whether a serviceprovider qualifies to provide the service by tracking the location ofthe service provider (via their computing device, such as a mobilephone). In some embodiments, the central server may do this viadetermining whether the service providers are within a radius having apredefined proximity to the service requester. That is, the centralserver may determine that a service provider cannot reach the locationof the service requester by a requested time and therefore, as part ofthe filtering process, not include their bid—or even not send therequest to them. In one example, the central server may take intoaccount surrounding conditions, such as, weather, traffic, etc. todetermine whether a service provider can meet the requirements set forthby the service requester, as part of the bid filtering process.

In some embodiments of the present system, the central server mayprovide a payment processing method using at least one of: theoriginally recorded bid amount, the GPS location of the serviceprovider, the location specified by the service requester, and/or GPSlocation of the service requester. In this embodiment, the centralserver may compare the GPS location of the service provider with one ofeither the location specified by the service requester or GPS locationof the service requester, to ensure that the service provider actuallyshowed up to perform the job and that facilitating the payment iswarranted. In one alternate embodiment, the central server may also keeptrack of the time the service provider spends at the service requesterjob and compare the time spent on the job with previously recorded timeson similar jobs to ensure that the transaction is valid and facilitatingthe payment is warranted. Therefore, in addition to the verification andconfirmation by the central server that the transaction was completedsuccessfully, the payment is sent to the service provider (by thecentral server) upon both service provider and service requestertransmitting a confirmation signal to the central server that the jobhas been successfully completed.

In one aspect of the presently disclosed embodiments, only serviceproviders and service requesters who have either performed a service orreceived a service may be allowed to provide or submit a review orevaluation on the other party. That is, any fraudulent or baselessreview that may come from a third party may not be accepted, ensuringthat any comments received is from real parties involved in thetransaction. Accordingly, the integrity of the review process ismaintained by providing a closed system of reviews giving the centralserver control over which users have authority to provide a valuation,review, or assessment of the job a service provider performed.Additionally, the central server may have control over the process toensure only authorized service providers who actually performed theservice are allowed to submit a valuation, review, or assessment of theservice requester and, for example, how easy it may have been to workwith them.

In one embodiment, the central server may in addition, use the GPSlocation of both the service provider and the service requester toperform a validation check. That is, if the GPS locations of bothparties doesn't reflect them being at the same place at the same time,then they most likely did not interact and therefore, a review providedby either one is not as accurate of effective. Accordingly, the centralserver may tag the valuation, review, or assessment as needing furtherverification before being published for public access. In oneembodiment, the further verification may be the central server sending arequest to both parties to approve and/or verify that the service didindeed occur and that the review written by the other side is reflectiveof the actually performed service.

Connecting service providers and users may require the transmission ofmultiple signals back and forth between the user device and the serviceprovider with the centralized server acting as an intermediary for muchof the process. FIG. 3 illustrates an embodiment of the signal timingprocess for dynamically matching service provider and users inaccordance with an embodiment of the invention. The dynamic matching andcommunication system 300 comprises a user device 310, a centralizedserver 320, and a service provider 330. In many embodiments, thecentralized server 320 will require service provider information to besubmitted (350) before service requests may be accepted. Servicerequests may be sent (351) to the central server 320 from a user device310. Service request data may be sent (352) to the service provider 330from the centralized server 320. In numerous embodiments, service bidinfo is collected (353) that may include service bid data to betransmitted to the centralized server 320. When service bid info hasbeen collected (353), the service request bid may be sent (354) to thecentralized server 320 from the service provider 330. In furtherembodiments, the centralized server 320 will then filter all receivedservice request bids before sending (355) the filtered bid info to theuser device 310. Once received, the user may make (356) a choice ofproviders from the received bids. In certain embodiments, the choice ofprovider may start the process of establishing (357) directcommunication between the user device 310 and the service provider 330without the need for verification. In other embodiments, the centralserver 320 may verify (not shown) the accepted provider choice made(356) before direct communication is established (357).

While a variety of dynamic matching signal timings are described abovewith reference to FIG. 3, the specific signals and timings between themwithin a dynamic matching system and the stages in which the directcommunication is established are largely dependent upon the requirementsof specific applications. For example, in certain embodiments, thecentralized server may consist of multiple servers and/or co-exist withcloud-based applications from third parties. In these embodiments,additional signals between the servers would occur to facilitate thedynamic matching process. An example of a mobile computing device thatcan be utilized for both user devices and service provider devices isdiscussed below.

FIG. 4 illustrates a top-level functional block diagram of a computingdevice 400 in accordance with an embodiment of the invention. Theoperating environment is shown as a computing device 420 comprising aprocessor 424, such as a central processing unit (CPU), addressablememory 427, an external device interface 426, e.g., an optionaluniversal serial bus port and related processing, and/or an Ethernetport and related processing, and an optional user interface 429, e.g.,an array of status lights and one or more toggle switches, and/or adisplay, and/or a keyboard and/or a pointer-mouse system and/or a touchscreen. Optionally, the addressable memory may be, for example: flashmemory, eprom, and/or a disk drive or other hard drive. These elementsmay be in communication with one another via a data bus 428. Via anoperating system 425 such as one supporting a web browser 423 andapplications 422, the processor 424 may be configured to execute stepsof a process establishing a communication channel according to theexemplary embodiments described above.

FIG. 5 is a flowchart of a process for dynamically matching serviceproviders to service requests in accordance with an embodiment of theinvention. The process depicted in the flowchart may be performed by thecentral server and includes the steps of: (a) collecting provider datafrom a plurality of providers (step 510); (b) receiving a servicerequest by a user (step 520); (c) processing the service request basedon the collected provider data (step 530); (d) sending, via a network,the processed service request to at least one of the plurality ofproviders (step 540); (e) receiving at least one service bid from the atleast one of the plurality of providers wherein the at least one servicebid comprises service data (step 550); (f) filtering the at least oneservice bid based on the service data (step 560); (g) sending, via anetwork, the at least one filtered service bid to the user (step 570);(h) receiving a selection input from the user (step 580); and (i)establishing a direct communication channel between the user and theprovider based on the received selection input (step 590).

FIG. 6 depicts a computing system 600 in accordance with an embodimentof the invention, comprising a central server, e.g., a computing device610, a service provider node 620, a service requester node 630 at aclient device, a server node, e.g., a data exchange server 655, and anoptional first firewall 640 and optional second firewall 645.Optionally, the computing device 610 may be external to the serviceprovider 620 and service requester 630 behind the optional set of one ormore network firewalls 640, 645. In some embodiments, the data exchangeserver 655 may be used for data transmission, i.e., used to transferdata, via an established data channel, between the service provider 620and the service requester 630. In some embodiments, the data exchangeserver 655 may be external to the service provider 620 and servicerequester 630 behind the optional set of one or more network firewalls640, 645. In some embodiments, where the service requester 630 andservice provider 620 may be protected by an optional set of one or morenetwork firewalls 640, 645, the data exchange server 655 may be presentto effect the exchanging of data between the devices. Optionally, oncethe computing device 610 has established a communication channel, thecomputing device 610 may provide, via transmitting to the data exchangeserver 655, a set of one or more attributes 650 to effect thetransferring of data between the service provider 620 and the servicerequester 630. In one embodiment, the one or more attributes 650 maycomprise a unique ID generated by the computing device 610 (or aspreviously referred to centralized server), where the generated uniqueID may provide a way for the two devices to establish a directcommunication channel, while still under the control of the computingdevice 610, which in accordance with the aspects of the differentembodiments monitors, validates, and confirms the transactions. In anembodiment where the service provider 620 and service requester 630 aredeployed within a network environment comprising a set of one or moreoptional network firewalls, the data exchange server 655 may act as amedium to transmit the messages, e.g., payload data, between the serviceprovider 620 and service requester 630. Optionally, the data exchangeserver 655 may establish a unique set of data channels, e.g., a datachannel 657 with the service provider 620 and a data channel 659 withthe service requester 630. Optionally, when the data channels 657, 659are established, the service provider 620 and service requester 630 mayinvoke data communication via the established data channels 657, 659.

In an embodiment depicted in FIG. 1C, where a data exchange server mayeffect a communication channel, via acting as a facilitator tofacilitate communications between the service provider and servicerequester, the service provider and service requester may receivenotification of pairing (e.g., accepted bid for a job) having beenestablished. In some embodiments, the data exchange server may bereachable by both the service provider and service requester because thedata exchange server may be outside the firewalls. Optionally, the dataexchange server may act as a proxy for each device that may relaycommunication data between the two devices or alternatively, the dataexchange server may operate like a pass-through server. In someembodiments, modification of the data being transmitted may be necessarywhere one device may send an HTTP request to the data exchange serverthat may be intended for the device it is currently paired with.Optionally, the data exchange server may modify the data, e.g., the HTTPheader field, so that the request may be handled according to a set ofrules established by the intended target device. Other network protocolsmay need modification and/or transformation of the data where hostinformation may be included in the payload.

FIG. 7 is a flowchart depicting a process for dynamic matching andcommunication of service providers and service requesters in accordancewith an embodiment of the invention. In further reference to the methodembodiments, the system for dynamic matching and establishing ofcommunication channels between service providers and service requestersmay include the steps of: receive a check-in request from a serviceprovider; continuously determine whether the service provider is stillavailable and checked-in; receive a request from a service requester,the request having the following information: selected location ofservice, selected category of service, and description, which mayinclude photos, videos, etc.; provide to the service requester a list ofall service providers who match the selected location and selectedcategory; filter the results based on a received input/selection fromthe service requester, where the filtering of the results may be basedon some additional criteria (for example, background check, whetherinsured, etc.); receive a selection from the service requester; confirmthat the selected service provider is still checked-in, by for example,using keep-alive messages; transmit a notification to the selectedservice provider that they are part of a provisionary selection; receivea response from the selected service provider as to whether theyaccepted or rejected the request—in an embodiment where the response isan acceptance, an initial bid may also be included in the response;transmit the initial bid amount to the service requester; receive fromthe service requester a response to the initial bid by the selectedservice provider where the response may include an acceptance or arejection; transmit to the service provider, the complete address anddirections to the location specified by the service requester, based onreceiving an acceptance response from the service requester; receive amessage from the service provider indicating they have arrived at thelocation; optionally, confirming that the location of the serviceprovider's computing device matches the location specified by theservice requester for the service to be performed; receive a completionmessage from the service provider's computing device, where thecompletion message may include the signature of the service requestersigning off on the service; and mark the transaction as completed.

In accordance with the aspects of the present embodiments, once atransaction is marked as completed, the service provider and servicerequester may then have the ability to provide a review of each othergiven their experience on the current transaction. In addition, someembodiments provide a temporary authorization of the service requester'spayment method, for example, credit card, upon the initiation of the joband upon the transaction being marked as completed, charge the fullagreed to amount to the service requester, ensuring that the serviceprovider will be paid. In yet other embodiments, the service providermay take photos or videos of the final job and upload them to the serverfor confirmation and evidence in case of any future disputes orquestions as to their service.

FIG. 8 depicts, in a functional block diagram, a communication sequenceof message between a server device and multiple client devices, e.g.,mobile device of a service provider 510 and mobile device of a servicerequester 520. With further reference to FIG. 8, an embodiment of aclient server system 850 is depicted as including a set of mobiledevices as client nodes 810, 820 and a computing device as a server node840, where, at each node, computer instructions are present to execute aset of applications. The client nodes 810,820 may comprise a userinterface 811,821 (respectively) and may communicate with the server 840component via a socket connection and send data, e.g., HTTP connectionrequests, to the server 840. In some embodiments, the client 810 mayinitiate the execution of an application via a command 812 that mayinclude a message to check-in with the server and that the provider isavailable for providing services. In addition, the client 810 mayprovide continual transmission 813 of GPS location as a way to determinewhether they are able to service an area within a specified radius. Inone exemplary embodiment, the client 820 may transmit a command 822 torequest service, where the request may include the location of service,what categories of services is needed, and/or provide description,photos, videos, etc. to aid with their request. The server 840 may thenrespond 823 by sending a list of all the service providers that fit thecriteria and where the service requester may use a filter on the userinterface 821 to narrow the list of service providers. The servicerequester may then select and respond (not shown) to the server 840 theselection, e.g., which provider has been selected. Embodiments mayprovide a way for the service providers to continually check-in with theserver 840 via the client 810 sending a “keep-alive” message 814 at apredetermined time period so that the server may be able to update thelist of service providers dynamically and on a real-time basis—othermethods may be used to ensure continued availability of the serviceproviders. That is, once a service provider is determined not to beavailable, they will not show up on the list of available or removedfrom the list—if they were already provided to the service requester.

In some embodiments, the service provider may receive a notification 815that their service is needed/requested and they may then determine toaccept or reject the request via the user interface 811. Thenotification of acceptance or rejection may then be transmitted 816 backto the server 840, where in some cases, a price or bid for the workbeing requested is included in the acceptance. The client 820 may thenreceive 828 the bid and other relevant information about the servicerequester that accepted the work and determine whether they want tocontinue with the process. If the service requesters, via the userinterface 821, accepts the terms of the service, a notification istransmitted 829 to the server 840 with the acceptance and might alsoinclude additional details, for example, exact address, etc. of the job.The server may then transmit 817 that information to the serviceprovider at the client 810 and inform them that the bid was accepted.Additionally, the transmitted 817 information may include the fulladdress, along with directions to the location, and other relevantinformation for the service provider to go to and complete the job. Inone example, the service provider may receive information about the typeof pipe that was broken and be able to go to the department store andpurchase the necessary parts before going to the jobsite. The server mayalso monitor the location of the service provider and make sure thatthey are on their way to the service requesters' location. Additionally,the server 840 may provide a method for the client nodes 810,820 to bein direct communication with each other, where the arrival time, etc.may be sent to the service requester directly from the service provider.Once the service provider arrives at the location, the provider willnotify the server 840 and client 820 that they have arrived, either viathe user interface and/or the GPS location. Upon completion of the work,the client 810 may receive a signature or acknowledgment from theservice requester at the user interface 811 of the client 810 andtransmit (not shown) that information to the server 840.

In some embodiments, the server may execute a set of one or moreapplications via an OS that may be running on the server. Theapplication set may function in a way so as to have access to a set ofresources on the device, e.g., access to memory and to operating systemservices, according to a set of rules which may be defined perapplication, per set of applications, or per server. The set ofapplications may be executed in an environment where the server is incommunication with a plurality of client mobile devices. In someembodiments, the server OS may assign the URLs to each application andthe client may direct the HTTP request to the URL that is associatedwith the application. Optionally, once an application has terminated,for example, after successful completion or terminal failure—theapplication may return a response to the client. In exemplaryembodiments, the client may be external to the server and optionally,the client may be outside of a network firewall. In the exemplaryembodiments where the client may be outside of a network firewall, anHTTP encapsulation method may be used to access the server.

In one embodiment, the communication channel may serve as a medium topair multiple devices, e.g., resources or smart devices, with eachother. Once paired, the devices may communicate and exchange data witheach other. In some embodiments, a portable device may, for example,request a dynamically generated list of potential service providers. Inanother embodiment, a portable device may, for example, request to pairwith a service provider in order to establish a direct channel ofcommunication between service requester and service provider.

In one embodiment, the data communication between the devices may bevia, for example, a User Datagram Protocol (UDP) which is a transportlayer protocol defined for use with the IP network layer protocol. Inone exemplary embodiment, a push data mechanism may be implemented viaTCP/IP protocols and the line tracking time updates may be sent inreal-time. Each mobile device may comprise an embedded web applicationserver that may allow executable applications or scripts, e.g.,application software, that may be available in versions for differentplatforms and are to be executed on the mobile device. Applications maybe developed to support various mobile devices and their respectiveoperating systems such as: iOS, Android, and Windows.

In many embodiments, both service providers and users utilize a softwareapplication on a portable computing device which can transmit data, andassociated information to the centralized server via, for example,wireless WiFi®, wireless local area network (WLAN), or other wirelessnetworks with broadcast methods such as Long Term Evolution (LTE),Bluetooth, and/or any other hardware or software radio broadcastmethods. The centralized server may connect and work with any suchdevices that may use LTE or WLAN, for example, mobile phones,specifically smartphones, personal computers, video game consoles,tablets, televisions, and/or digital cameras, to connect to a networkresource such as the Internet via wired or wireless communication.

The visual displays in the figures are generated by modules in localapplications on computing devices and/or on the system/platform, anddisplayed on electronic displays of computing devices for userinteraction and form graphical user interface for interaction with thesystem/platform disclosed herein.

FIG. 9 is a high-level block diagram 1100 showing a computing systemcomprising a computer system useful for implementing an embodiment ofthe system and process, disclosed herein. Embodiments of the system maybe implemented in different computing environments. The computer systemincludes one or more processors 1102, and can further include anelectronic display device 1104 (e.g., for displaying graphics, text, andother data), a main memory 1106 (e.g., random access memory (RAM)),storage device 1108, a removable storage device 1110 (e.g., removablestorage drive, a removable memory module, a magnetic tape drive, anoptical disk drive, a computer readable medium having stored thereincomputer software and/or data), user interface device 1111 (e.g.,keyboard, touch screen, keypad, pointing device), and a communicationinterface 1112 (e.g., modem, a network interface (such as an Ethernetcard), a communications port, or a PCMCIA slot and card). Thecommunication interface 1112 allows software and data to be transferredbetween the computer system and external devices. The system furtherincludes a communications infrastructure 1114 (e.g., a communicationsbus, cross-over bar, or network) to which the aforementioneddevices/modules are connected as shown.

Information transferred via communications interface 1114 may be in theform of signals such as electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 1114, viaa communication link 1116 that carries signals and may be implementedusing wire or cable, fiber optics, a phone line, a cellular/mobile phonelink, an radio frequency (RF) link, and/or other communication channels.Computer program instructions representing the block diagram and/orflowcharts herein may be loaded onto a computer, programmable dataprocessing apparatus, or processing devices to cause a series ofoperations performed thereon to produce a computer implemented process.

Embodiments have been described with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments. Each block of suchillustrations/diagrams, or combinations thereof, can be implemented bycomputer program instructions. The computer program instructions whenprovided to a processor produce a machine, such that the instructions,which execute via the processor, create means for implementing thefunctions/operations specified in the flowchart and/or block diagram.Each block in the flowchart/block diagrams may represent a hardwareand/or software module or logic, implementing embodiments. Inalternative implementations, the functions noted in the blocks may occurout of the order noted in the figures, concurrently, etc.

Computer programs (i.e., computer control logic) are stored in mainmemory and/or secondary memory. Computer programs may also be receivedvia a communications interface 1112. Such computer programs, whenexecuted, enable the computer system to perform the features of theembodiments as discussed herein. In particular, the computer programs,when executed, enable the processor and/or multi-core processor toperform the features of the computer system. Such computer programsrepresent controllers of the computer system.

FIG. 10 shows a block diagram of an example system 1200 in which anembodiment may be implemented. The system 1200 includes one or moreclient devices 1201 such as consumer electronics devices, connected toone or more server computing systems 1230. A server 1230 includes a bus1202 or other communication mechanism for communicating information, anda processor (CPU) 1204 coupled with the bus 1202 for processinginformation. The server 1230 also includes a main memory 1206, such as arandom access memory (RAM) or other dynamic storage device, coupled tothe bus 1202 for storing information and instructions to be executed bythe processor 1204. The main memory 1206 also may be used for storingtemporary variables or other intermediate information during executionor instructions to be executed by the processor 1204. The servercomputer system 1230 further includes a read only memory (ROM) 1208 orother static storage device coupled to the bus 1202 for storing staticinformation and instructions for the processor 1204. A storage device1210, such as a magnetic disk or optical disk, is provided and coupledto the bus 1202 for storing information and instructions. The bus 1202may contain, for example, thirty-two address lines for addressing videomemory or main memory 1206. The bus 1202 can also include, for example,a 32-bit data bus for transferring data between and among thecomponents, such as the CPU 1204, the main memory 1206, video memory andthe storage 1210. Alternatively, multiplex data/address lines may beused instead of separate data and address lines.

The server 1230 may be coupled via the bus 1202 to a display 1212 fordisplaying information to a computer user. An input device 1214,including alphanumeric and other keys, is coupled to the bus 1202 forcommunicating information and command selections to the processor 1204.Another type or user input device comprises cursor control 1216, such asa mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to the processor 1204 andfor controlling cursor movement on the display 1212.

According to one embodiment, the functions are performed by theprocessor 1204 executing one or more sequences of one or moreinstructions contained in the main memory 1206. Such instructions may beread into the main memory 1206 from another computer-readable medium,such as the storage device 1210. Execution of the sequences ofinstructions contained in the main memory 1206 causes the processor 1204to perform the process steps described herein. One or more processors ina multi-processing arrangement may also be employed to execute thesequences of instructions contained in the main memory 1206. Inalternative embodiments, hard-wired circuitry may be used in place of orin combination with software instructions to implement the embodiments.Thus, embodiments are not limited to any specific combination ofhardware circuitry and software.

The terms “computer program medium,” “computer usable medium,” “computerreadable medium”, and “computer program product,” are used to generallyrefer to media such as main memory, secondary memory, removable storagedrive, a hard disk installed in hard disk drive, and signals. Thesecomputer program products are means for providing software to thecomputer system. The computer readable medium allows the computer systemto read data, instructions, messages or message packets, and othercomputer readable information from the computer readable medium. Thecomputer readable medium, for example, may include non-volatile memory,such as ROM, flash memory, disk drive memory, a CD-ROM, and otherpermanent storage. It is useful, for example, for transportinginformation, such as data and computer instructions, between computersystems. Furthermore, the computer readable medium may comprise computerreadable information in a transitory state medium such as a network linkand/or a network interface, including a wired network or a wirelessnetwork that allow a computer to read such computer readableinformation. Computer programs (also called computer control logic) arestored in main memory and/or secondary memory. Computer programs mayalso be received via a communications interface. Such computer programs,when executed, enable the computer system to perform the features of theembodiments as discussed herein. In particular, the computer programs,when executed, enable the processor multi-core processor to perform thefeatures of the computer system. Accordingly, such computer programsrepresent controllers of the computer system.

Generally, the term “computer-readable medium” as used herein refers toany medium that participated in providing instructions to the processor1204 for execution. Such a medium may take many forms, including but notlimited to, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks,such as the storage device 1210. Volatile media includes dynamic memory,such as the main memory 1206. Transmission media includes coaxialcables, copper wire and fiber optics, including the wires that comprisethe bus 1202. Transmission media can also take the form of acoustic orlight waves, such as those generated during radio wave and infrared datacommunications.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to the processor 1204 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to the server 1230 canreceive the data on the telephone line and use an infrared transmitterto convert the data to an infrared signal. An infrared detector coupledto the bus 1202 can receive the data carried in the infrared signal andplace the data on the bus 1202. The bus 1202 carries the data to themain memory 1206, from which the processor 1204 retrieves and executesthe instructions. The instructions received from the main memory 1206may optionally be stored on the storage device 1210 either before orafter execution by the processor 1204.

The server 1230 also includes a communication interface 1218 coupled tothe bus 1202. The communication interface 1218 provides a two-way datacommunication coupling to a network link 1220 that is connected to theworld wide packet data communication network now commonly referred to asthe Internet 1228. The Internet 1228 uses electrical, electromagnetic oroptical signals that carry digital data streams. The signals through thevarious networks and the signals on the network link 1220 and throughthe communication interface 1218, which carry the digital data to andfrom the server 1230, are example forms or carrier waves transportingthe information.

In another embodiment of the server 1230, interface 1218 is connected toa network 1222 via a communication link 1220. For example, thecommunication interface 1218 may be an integrated services digitalnetwork (ISDN) card or a modem to provide a data communicationconnection to a corresponding type of telephone line, which can comprisepart of the network link 1220. As another example, the communicationinterface 1218 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, the communication interface1218 sends and receives electrical electromagnetic or optical signalsthat carry digital data streams representing various types ofinformation.

The network link 1220 typically provides data communication through oneor more networks to other data devices. For example, the network link1220 may provide a connection through the local network 1222 to a hostcomputer 1224 or to data equipment operated by an Internet ServiceProvider (ISP). The ISP in turn provides data communication servicesthrough the Internet 1228. The local network 1222 and the Internet 1228both use electrical, electromagnetic or optical signals that carrydigital data streams. The signals through the various networks and thesignals on the network link 1220 and through the communication interface1218, which carry the digital data to and from the server 1230, areexamples forms or carrier waves transporting the information.

The server 1230 can send/receive messages and data, including e-mail,program code, through the network, the network link 1220 and thecommunication interface 1218. Further, the communication interface 1218can comprise a USB/Tuner and the network link 1220 may be an antenna orcable for connecting the server 1230 to a cable provider, satelliteprovider or other terrestrial transmission system for receivingmessages, data and program code from another source.

The example versions of the embodiments described herein may beimplemented as logical operations in a distributed processing systemsuch as the system 1200 including the servers 1230. The logicaloperations of the embodiments may be implemented as a sequence of stepsexecuting in the server 1230, and as interconnected machine moduleswithin the system 1200. The implementation is a matter of choice and candepend on performance of the system 1200 implementing the embodiments.As such, the logical operations constituting said example versions ofthe embodiments are referred to for e.g., as operations, steps ormodules.

Similar to a server 1230 described above, a client device 1201 caninclude a processor, memory, storage device, display, input device andcommunication interface (e.g., e-mail interface) for connecting theclient device to the Internet 1228, the ISP, or LAN 1222, forcommunication with the servers 1230. The system 1200 can further includecomputers (e.g., personal computers, computing nodes) 1205 operating inthe same manner as client devices 1201, where a user can utilize one ormore computers 1205 to manage data in the server 1230.

Referring now to FIG. 11, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 comprises one or morecloud computing nodes 10 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA),smartphone, smart watch, set-top box, video game system, tablet, mobilecomputing device, or cellular telephone 54A, desktop computer 54B,laptop computer 54C, and/or automobile computer system 54N maycommunicate. Nodes 10 may communicate with one another. They may begrouped (not shown) physically or virtually, in one or more networks,such as Private, Community, Public, or Hybrid clouds as describedhereinabove, or a combination thereof. This allows cloud computingenvironment 50 to offer infrastructure, platforms and/or software asservices for which a cloud consumer does not need to maintain resourceson a local computing device. It is understood that the types ofcomputing devices 54A-N shown are intended to be illustrative only andthat computing nodes 10 and cloud computing environment 50 cancommunicate with any type of computerized device over any type ofnetwork and/or network addressable connection (e.g., using a webbrowser).

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

Although the present inventions have been described in terms ofpreferred and alternative embodiments above, numerous modificationsand/or additions to the above-described embodiments would be readilyapparent to one skilled in the art. The embodiments may be defined asmethods of use carried out by anyone, any subset of or all of thecomponents and/or users; as systems of one or more components in acertain structural and/or functional relationship; and/or assubassemblies or sub-methods. The inventions can include each of theindividual components separately. However, it is intended that the scopeof the present inventions extend to all such modifications and/oradditions and that the scopes of the present inventions are limitedsolely by the claims set forth herein. The inventions include themethods being included or distributed in CD-ROMs, DVDs, over theInternet, as a programmed computer, a processor and a non-transitorycomputer-readable medium, and others as would be apparent to thoseskilled in the art in view of this disclosure.

Although the terms first, second, third and so forth may be used hereinto describe various members, elements, components, regions, layersand/or sections, these members, elements, components, regions, layersand/or sections should not be limited by these terms. These terms may beused to distinguish one element, component, region, layer or sectionfrom another region, layer or section. Terms such as “first,” “second”and other numerical terms when used herein do not imply a sequence ororder unless clearly indicated by the context. Thus, a first member,element, component, region, layer or section discussed below can betermed a second member, element, component, region, layer or sectionwithout departing from the aspects of the present teachings.

The illustrations and examples provided herein are for explanatorypurposes and are not intended to limit the scope of the appended claims.This disclosure is to be considered an exemplification of the principlesof the invention and is not intended to limit the spirit and scope ofthe invention and/or claims of the embodiment illustrated. It iscontemplated that various combinations and/or sub-combinations of thespecific features, systems, methods, and aspects of the aboveembodiments may be made and still fall within the scope of theinvention. Accordingly, it should be understood that various featuresand aspects of the disclosed embodiments may be combined with orsubstituted for one another in order to form varying modes of thedisclosed invention. Further, it is intended that the scope of thepresent invention herein disclosed by way of examples should not belimited by the particular disclosed embodiments described above.

What is claimed is:
 1. A method comprising: receiving, by a servercomputing device, service provider data from a plurality of serviceprovider devices, wherein the service provider data comprisesinformation about an availability, category of service, and location ofa service provider device among the plurality of service providerdevices; receiving, by the server computing device, a service requestfrom a service requester device, the service requester device comprisingat least one of: location, description, and digital media associatedwith the service request; transmitting, by the server computing device,a subset of the plurality of service provider devices to the servicerequester in response to the service request, wherein the subset isdetermined by matching the service request with the received serviceprovider data; receiving from the service requester device, a selectedservice provider device from the transmitted subset of the plurality ofservice provider devices; transmitting to the selected service providerdevice a notification of the selection by the service requester device;receiving, by the server computing device, a response from the selectedservice provider device on whether the service request was accepted orrejected; validating, by the server computing device, the receivedresponse that was accepted, wherein the accepted received responsecomprises a price amount determined by the service provider device andassociated with the service request; filtering the received response andassociated price amount from the service providers devices by using thereceived service provider data and previously recorded price amounts;receiving from the service requester device via the server computingdevice, a response as to whether a transmitted validated response andassociated price amount are accepted or rejected; and transmitting tothe selected service provider device detailed information about theservice request based on an accepted response from the service requesterdevice of the validated response.
 2. The method of claim 1, furthercomprising: determining, by the server computing device, a category toassociate with the service request, wherein the determining is viaperforming image recognition on the received digital media to determineobjects present in the received digital media; and associate thedetermined category to the service request based on successfully findinga set of recognized objects from the received digital media.
 3. Themethod of claim 2, wherein the plurality of service provider devices ofthe server computing device provide continual transmission of GPSlocation as a way to determine whether the plurality of service providerdevices are able to service an area within a specified radius.
 4. Themethod of claim 2, wherein transmitting to the selected service providerdevice detailed information comprises transmitting an address to alocation where a service is to be performed.
 5. The method of claim 4,further comprising: confirming, by the server computing device, that aservice provider device is present at the address to the location wherethe service is to be performed by comparing the continual transmissionof GPS location from the selected service provider device with theaddress.
 6. The method of claim 5, further comprising: determiningwhether a service request is competed based on a successful confirmationand receiving a signal from the selected service provider device thatthe service was done successfully.
 7. The method of claim 6, furthercomprising: providing an ability to submit a review of the servicerequest based on a determination that the service request was completedsuccessfully.
 8. The method of claim 1, wherein at least one service bidcomprises: availability to provide a service, a potential time of theservice, a cost estimate of the service, and a current location.
 9. Themethod of claim 1, wherein the subset is determined by matching theservice request with the received service provider data and based on theselected service provider device being available and within a determinedgeographical location.
 10. The method of claim 9, wherein the determinedgeographical location is determined based on a specified radius from ageolocation associated with the selected service provider device. 11.The method of claim 1, further comprising: establishing a directcommunication channel between the service requester device and theselected service provider device based on the transmitted serviceprovider detailed information.